<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');
session_start();

class jx_comprasProductos extends CI_Controller {

    private $establecimiento;
    private $inventario;

    public function __construct() {
        parent::__construct();
        $this->load->model('_productoM');
        $this->load->model('monedam');
        $this->load->model('compraProducto');
        $this->load->model('producto_x_ventaM');
        $this->load->model('producto_x_compra');
        $this->load->model('producto_servicioM');
        $this->establecimiento = $_SESSION["establecimiento"]["id_establecimiento"];
    }

    public function index() {
        
    }

    public function getProductosOnCategoria() {
        if (!empty($_POST)) {
            $this->escapar($_POST);
            echo $this->createCombo($_POST['Id_categoria']);
        }
    }

    private function createCombo($Id_categoria) {
        $productos = $this->_productoM->getAllProductos($this->establecimiento, $Id_categoria);
        $options = "<option value='-1'>Todas</option>";
        foreach ($productos as $producto) {
            $options.="<option data-valor= {$producto->valor} data-inventario= {$producto->cantidad_actual} value= {$producto->id_servicio} > {$producto->nombre} </option>";
        }
        return $options;
    }

    public function search() {
        if (!empty($_POST)) {
            $this->escapar($_POST);

            $limit = 10;
            $offset = $_POST['pagina'] * ($limit) - $limit;

            $query = "SELECT c.id_compra, c.fecha,c.impuesto, c.descripcion, c.modo_pago, c.total_compra, p.nombre, p.telefono, p.direccion, p.email, p.id_pais, u.usuario FROM compra_producto c, usuario u, proveedor p  WHERE c.usuario_encargado=u.id_usuario AND c.id_proveedor=p.id_proveedor AND p.id_establecimiento='{$_SESSION['establecimiento']['id_establecimiento']}' AND ";
            $query.=(!empty($_POST['categoriaB'])) ? " c.id_compra IN (select id_compra from producto_x_compra where id_servicio IN (select id_servicio FROM producto_servicio where id_categoria_producto = '{$_POST['categoriaB']}' )) AND " : " ";
            $query.=(!empty($_POST['productoB'])) ? " c.id_compra IN (select id_compra from producto_x_compra where id_servicio IN (select id_servicio from producto_servicio where id_categoria_producto ='{$_POST['categoriaB']}' AND id_servicio= '{$_POST['productoB']}' )) AND " : " ";
            $query.=(!empty($_POST['fechaIni'])) ? " date_format(c.fecha,'%d/%m/%Y') >= '{$_POST['fechaIni']}' AND " : " ";
            $query.=(!empty($_POST['fechaFin'])) ? " date_format(c.fecha,'%d/%m/%Y') <= '{$_POST['fechaFin']}' AND " : " ";
            $query.=" TRUE ORDER BY c.id_compra ";
            $result = $this->compraProducto->query($query);
            $n = sizeof($result);
            $query.="LIMIT $limit OFFSET $offset";
            $this->createTableVentas($query, $_POST['pagina'], $n, $limit);
        }
    }

    //funcion encargada de crear la tabla con los resultados arrojados 
    public function createTableVentas($query, $pagina, $nFilas, $limit) {
        $table = "";
        $ventas = $this->compraProducto->query($query);
        $moneda = $this->monedam->obtenerMonedaActual($this->establecimiento);
        foreach ($moneda as $monedas) {
            $simbolo = $monedas->simbolo;
        }
        //  var_dump($productos);
        foreach ($ventas as $venta) {
            $query2 = "SELECT ps.nombre, c.nombre as categoria, pc.cantidad FROM categoria_producto_servicio c, producto_x_compra pc, producto_servicio ps where pc.id_servicio=ps.id_servicio AND pc.id_compra='{$venta->id_compra}' AND c.id_categoria_producto = ps.id_categoria_producto";
            $infoCompra2 = $this->compraProducto->query($query2);
            foreach ($infoCompra2 as $infoCompra) {
                $class = "Vermas";
                $table.="<tr>
                                    <td>$venta->fecha</td>
                                    <td>$venta->nombre</td>
                                    <td>$infoCompra->nombre</td>
                                    <td>$infoCompra->cantidad</td>
                                    <td>$simbolo $venta->total_compra</td>                                    
                                    <td>$venta->usuario</td>
                                    <td>
                                        <a href='#modalVerMasCompra' class='btn btn-mini btn-inverse $class' type='button' data-toggle='modal' 
                                            data-id='{$venta->id_compra}' data-id_compra='{$venta->id_compra}' data-nombreProveedor='{$venta->nombre}' data-idpaisproveedor='{$venta->id_pais}'
                                                data-telefonoproveedor='{$venta->telefono}' data-emailproveedor='{$venta->email}' data-direccionproveedor='{$venta->direccion}'
                                                    data-usuario='{$venta->usuario}' data-fecha='{$venta->fecha}'  data-total_compra='{$venta->total_compra}'  data-impuestos='{$venta->impuesto}' 
                                                        data-modo_pago='{$venta->modo_pago}'  data-notascompra='{$venta->descripcion}'
                                                            data-nombrepact='{$infoCompra->nombre}' data-cantidadpact='{$infoCompra->cantidad}' data-categriapact='{$infoCompra->categoria}' >Ver mas</a>                                                                  
                                    <a href='#confirmatioDelete' class='btn btn-mini btn-danger eliminar' data-toggle='modal'  data-id_de_compra='{$venta->id_compra}' ><i class='icon-remove icon-black'></i></a>
                                    </td>
                                </tr>  ";
            }
        }
        echo "$table %%% " . $this->createPagination($nFilas, $pagina, $limit);
    }

    /////////////////// Buscar productos de una compra///////////////////////

    public function searchProductosByIdCompra() {
        if (!empty($_POST)) {
            $this->escapar($_POST);

            $limit = 5;
            $offset = $_POST['pagina'] * ($limit) - $limit;

            $query = "SELECT ps.nombre, pc.cantidad FROM producto_x_compra pc, producto_servicio ps where pc.id_servicio=ps.id_servicio AND pc.id_compra='{$_POST['idcompra']}' ";
            $result = $this->compraProducto->query($query);
            $n = sizeof($result);
            $query.="LIMIT $limit OFFSET $offset";
            $this->createTableProductos($query, $_POST['pagina'], $n, $limit);
        }
    }

    //funcion encargada de crear la tabla con los resultados arrojados 
    public function createTableProductos($query, $pagina, $nFilas, $limit) {
        $table = "";
        $ventas = $this->compraProducto->query($query);

        //  var_dump($productos);
        foreach ($ventas as $venta) {

            $table.="<tr>
                                    
                                    <td>$venta->nombre</td>                                                                       
                                    <td>$venta->cantidad</td>
                                    
                                </tr>  ";
        }
        echo "$table %%% " . $this->createPagination($nFilas, $pagina, $limit);
    }

    ///////////////////////////// F U N C I O N E S   C O M U N E S 
    public function createPagination($n, $active, $limit) {
        $n = ceil($n / $limit);
        // return $n;
        $pagination = "<ul>";
        for ($i = 1; $i <= $n; $i++) {
            $pagination.="<li ";
            $pagination.=($i == $active) ? " class=active>" : ">";
            $pagination.="<a class='pagination' data-pagina='$i' href='#'>$i</a></li>";
        }
        $pagination .= "</ul>";
        return $pagination;
    }

    public function deleteCompra() {

        if (!empty($_POST)) {
            $this->escapar($_POST);
            $query = "SELECT pc.id_servicio,  pc.cantidad FROM  producto_x_compra pc where  pc.id_compra='{$_POST['idCompra']}'  AND pc.id_establecimiento='{$_SESSION['establecimiento']['id_establecimiento']}' ";
            $result = $this->producto_x_compra->query($query);
            foreach ($result as $productos) {
                $this->producto_servicioM->actualizarInventarioDeleteCompra($productos->id_servicio, $productos->cantidad);
            }
            // $establecimientoActual=$_SESSION['establecimiento']['id_establecimiento'];
            $this->compraProducto->eliminarCompra($_POST['idCompra'], $_SESSION['establecimiento']['id_establecimiento']);
        }
    }

}